package easy;

import java.util.Arrays;


/**
 * @author admin
 * 575. 分糖果
 * 解题思路：
 * 解法一：排序+比较，定义一个count来保存结果，对数组for循环，条件是数组长度内且count小于数组长
 * 度的一半，从第一个和第二个数开始比较，紧接着第二个和第三个比较，但后者大于前者，则将count加1
 *
 * 解法二：集合set，先求出不重复的元素，再使用Math.min（）返回集合大小和数组长度一半中较小的那个数
 */
public class LeeCode575 {

    public int distributeCandies(int[] candyType) {
        Arrays.sort(candyType);
        int  count = 1;
        for (int i = 1; i < candyType.length && count < candyType.length/2; i++) {
            if (candyType[i] > candyType[i-1]){
                count++;
            }
        }
        return count;

//        HashSet<Integer> set = new HashSet<>();
//        for (int i : candyType) {
//            set.add(i);
//        }
//        return Math.min(set.size(),candyType.length/2);
    }

    public static void main(String[] args) {
        System.out.println(new LeeCode575().distributeCandies(new int[]{1, 1, 2, 2, 3, 3}));
    }
}
